/**
 * 库存管理
 *
 * @author XiongChun
 * @since 2010-11-20
 */
Ext.onReady(function(){
    var deptStore = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: 'stock.ered?reqCode=queryDepts'
        }),
        reader: new Ext.data.JsonReader({}, [{
            name: 'value'
        }, {
            name: 'text'
        }]),
        baseParams: { //areacode : '53'
}        ,
        listeners: {
            // 设置远程数据源下拉选择框的初始值
            'load': function(obj){
                //areaCombo.setValue('530101');
            }
        }
    });
	deptStore.load(); // 如果mode : 'local',时候才需要手动load();
		var goodStore = new Ext.data.Store({
						proxy : new Ext.data.HttpProxy({
									url : 'order.ered?reqCode=queryGoods'
								}),
						reader : new Ext.data.JsonReader({}, [{
											name : 'value'
										}, {
											name : 'text'
										}]),
						baseParams : {
							//areacode : '53'
						},
						listeners : {
							// 设置远程数据源下拉选择框的初始值
							'load' : function(obj) {
								//areaCombo.setValue('530101');
							}
						}
					});

			goodStore.load(); // 如果mode : 'local',时候才需要手动load();
    
    var qForm = new Ext.form.FormPanel({
        region: 'north',
        title: '<span class="commoncss">查询条件<span>',
        collapsible: true,
        border: true,
        labelWidth: 50, // 标签宽度
        // frame : true, //是否渲染表单面板背景色
        labelAlign: 'right', // 标签对齐方式
        bodyStyle: 'padding:3 5 0', // 表单元素和表单面板的边距
        buttonAlign: 'center',
        height: 120,
        items: [{
            layout: 'column',
            border: false,
            items: [{
                columnWidth: .25,
                layout: 'form',
                labelWidth: 60, // 标签宽度
                defaultType: 'textfield',
                border: false,
                items: [{
                    fieldLabel: '新建编号',
                    name: 'xjbh',
                    id: 'xjbh',
                    anchor: '100%'
                }]
            }, {
                columnWidth: .25,
                layout: 'form',
                labelWidth: 60, // 标签宽度
                defaultType: 'textfield',
                border: false,
                items: [new Ext.form.ComboBox({
                    hiddenName: 'school',
                    fieldLabel: '入库学校',
                    emptyText: '请选择...',
                    triggerAction: 'all',
                    store: deptStore,
                    displayField: 'text',
                    valueField: 'value',
                    loadingText: '正在加载数据...',
                    mode: 'local', // 数据会自动读取,如果设置为local又调用了store.load()则会读取2次；也可以将其设置为local，然后通过store.load()方法来读取
                    allowBlank: true,
                    forceSelection: false,
                    editable: true,
                    typeAhead: true,
                    plugins: [new QM.plugin.PinyinFilter],
                    anchor: '100%'
                
                })]
            }, {
                columnWidth: .25,
                layout: 'form',
                labelWidth: 60, // 标签宽度
                defaultType: 'textfield',
                border: false,
                items: [new Ext.form.ComboBox({
				hiddenName : 'good',
				fieldLabel : '选择道具',
				emptyText : '请选择...',
				triggerAction : 'all',
				store : goodStore,
				displayField : 'text',
				valueField : 'value',
				loadingText : '正在加载数据...',
				mode : 'local', // 数据会自动读取,如果设置为local又调用了store.load()则会读取2次；也可以将其设置为local，然后通过store.load()方法来读取
				allowBlank : true,
				forceSelection : false,
				editable : true,
				typeAhead : true,
				plugins:[new QM.plugin.PinyinFilter],
				anchor : '100%'
				})]
            }]
        }],
        buttons: [{
            text: '查询',
            iconCls: 'previewIcon',
            handler: function(){
                Ext.getCmp('refu').enable();
                queryOrderDatas();
            }
        }, {
            text: '打印',
            id: 'id_btn_print',
            iconCls: 'printerIcon',
            handler: function(){
                printCatalog1();
            }
        }, {
            text: '重置',
            iconCls: 'tbar_synchronizeIcon',
            handler: function(){
                qForm.getForm().reset();
            }
        }]
    });
    
    // 定义自动当前页行号
    var rownum = new Ext.grid.RowNumberer({
        header: 'NO',
        width: 28
    });
    
    // 定义列模型
    var cm = new Ext.grid.ColumnModel([rownum, {
        header: '新建库存编号', // 列标题
        dataIndex: 'cstockno', // 数据索引:和Store模型对应
        sortable: true
    }, {
        header: '新建库存学校', // 列标题
        dataIndex: 'deptname', // 数据索引:和Store模型对应
        sortable: true// 是否可排序
    }, {
        header: '物品名称',
        dataIndex: 'goodname',
        sortable: true
        // 列宽
    }, {
        header: '新建数量',
        dataIndex: 'ordernum',
        sortable: true
    }, {
        header: '新建时间',
        dataIndex: 'createtime'
    }, {
        header: '操作人员',
        dataIndex: 'username'
    }]);
    
    /**
     * 数据存储
     */
    var store = new Ext.data.Store({
        // 获取数据的方式
        proxy: new Ext.data.HttpProxy({
            url: 'stock.ered?reqCode=queryCStock'
        }),
        reader: new Ext.data.JsonReader({
            totalProperty: 'TOTALCOUNT', // 记录总数
            root: 'ROOT' // Json中的列表数据根节点
        }, [{
            name: 'cstockno' // Json中的属性Key值
        }, {
            name: 'createtime'
        }, {
            name: 'goodno'
        }, {
            name: 'ordernum'
        }, {
            name: 'orders'
        }, {
            name: 'opernames'
        }, {
            name: 'username'
        }, {
            name: 'goodname'
        }, {
            name: 'deptname'
        }])
    });
    
    /**
     * 翻页排序时候的参数传递
     */
    // 翻页排序时带上查询条件
    store.on('beforeload', function(){
        this.baseParams = qForm.getForm().getValues();
    });
    // 每页显示条数下拉选择框
    var pagesize_combo = new Ext.form.ComboBox({
        name: 'pagesize',
        triggerAction: 'all',
        mode: 'local',
        store: new Ext.data.ArrayStore({
            fields: ['value', 'text'],
            data: [[10, '10条/页'], [20, '20条/页'], [50, '50条/页'], [100, '100条/页'], [250, '250条/页'], [500, '500条/页']]
        }),
        valueField: 'value',
        displayField: 'text',
        value: '20',
        editable: false,
        width: 85
    });
    var number = parseInt(pagesize_combo.getValue());
    // 改变每页显示条数reload数据
    pagesize_combo.on("select", function(comboBox){
        bbar.pageSize = parseInt(comboBox.getValue());
        number = parseInt(comboBox.getValue());
        store.reload({
            params: {
                start: 0,
                limit: bbar.pageSize
            }
        });
    });
    
    // 分页工具栏
    var bbar = new Ext.PagingToolbar({
        pageSize: number,
        store: store,
        displayInfo: true,
        displayMsg: '显示{0}条到{1}条,共{2}条',
        plugins: new Ext.ux.ProgressBarPager(), // 分页进度条
        emptyMsg: "没有符合条件的记录",
        items: ['-', '&nbsp;&nbsp;', pagesize_combo]
    });
    
    // 表格工具栏
    var tbar = new Ext.Toolbar({
        items: ['->', {
            text: '刷新',
            iconCls: 'arrow_refreshIcon',
			id:'refu',
			disabled: true,
            handler: function(){
                store.reload();
            }
        }]
    });
    
    // 表格实例
    var grid = new Ext.grid.GridPanel({
        // 表格面板标题,默认为粗体，我不喜欢粗体，这里设置样式将其格式为正常字体
        title: '<span class="commoncss">厂商信息列表</span>',
        height: 500,
        id: 'id_grid_sfxm',
        autoScroll: true,
        frame: true,
        region: 'center', // 和VIEWPORT布局模型对应，充当center区域布局
        store: store, // 数据存储
        stripeRows: true, // 斑马线
        cm: cm, // 列模型
        tbar: tbar, // 表格工具栏
        bbar: bbar,// 分页工具栏
        viewConfig: { // 不产横向生滚动条, 各列自动扩展自动压缩, 适用于列数比较少的情况
            // forceFit : true
        },
        loadMask: {
            msg: '正在加载表格数据,请稍等...'
        }
    });
    
    // 监听行选中事件
    grid.on('rowclick', function(pGrid, rowIndex, event){
    });
    
    grid.on('rowdblclick', function(grid, rowIndex, event){
        updateCatalogItem();
    });
    
    /**
     * 查询项目列表
     */
    function queryOrderDatas(){
        var params = qForm.getForm().getValues();
        params.start = 0;
        params.limit = bbar.pageSize;
        store.load({
            params: params
        });
    }
    
    // 布局
    // 如果把form作为center区域的话,其Height属性将失效。
    var viewport = new Ext.Viewport({
        layout: 'border',
        items: [qForm, grid]
    });
	
    
});
